package pub.wkq.springboot.web;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * WebMVCConfigurer 定义了多个方法来配置 Spring MVC，尽管只是一个接口，却提供了所有方法的默认实现，只需要我们覆盖所需方法的默认实现。
 *
 * addViewControllers() 方法会
 * @author 王开琦
 */
@Configuration
public class WebConfig implements WebMvcConfigurer {
    /**
     * addViewControllers() 方法会接受一个 ViewControllerRegistry 对象，我们可以使用它注册一个或多个视图控制器。在这里，使用 registry  的 addViewController() 方法，将 ”/“ 传递进去
     * ，视图控制器会针对 该路径执行 GET 请求。这个方法会返回 ViewControllerRegistration 对象，然后就基于该对象调用 setViewName() 方法，用它指明当请求 ”/“ 的时候要转发到 home 视图上
     *
     * 现在已经用几行代码就替换了 HomeController ，现在可以删除 HomeController ;
     * @param registry
     */
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("home");
    }
}
